package sv.gob.mh.dgii.model;

// Generated 06-27-2011 11:48:01 AM by Hibernate Tools 3.2.5.Beta

import java.sql.Blob;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * GdDocumento generated by hbm2java
 */
@Entity
@Table(name = "GD_DOCUMENTO", schema = "GDOCCALIDAD")
public class GdDocumento implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private GdDocumentoId id;
	private GdMaestroDoc gdMaestroDoc;
	private GdTipoDocum gdTipoDocum;
	private String cunidad;
	private String ddocumento;
	private String mestado;
	private Date fcreacionDoc;
	private Date fhModificacion;
	private long nfolio;
	private Date fhObsoletoDoc;
	private String cusuarioElabora;
	private String cusuarioRevisa;
	private String cusuarioAutoriza;
	private boolean bactivo;
	private Blob xcontenDoc;
	private Date frevisionDoc;
	private Date fautorizacionDoc;
	private String cusuarioDigita;
	private String sobjetivo;
	private Set<GdHDocCambios> gdHDocCambioses = new HashSet<GdHDocCambios>(0);

	public GdDocumento() {
	}

	public GdDocumento(GdDocumentoId id, GdMaestroDoc gdMaestroDoc,
			GdTipoDocum gdTipoDocum, String ddocumento, String mestado,
			Date fcreacionDoc, long nfolio, boolean bactivo,
			String cusuarioDigita) {
		this.id = id;
		this.gdMaestroDoc = gdMaestroDoc;
		this.gdTipoDocum = gdTipoDocum;
		this.ddocumento = ddocumento;
		this.mestado = mestado;
		this.fcreacionDoc = fcreacionDoc;
		this.nfolio = nfolio;
		this.bactivo = bactivo;
		this.cusuarioDigita = cusuarioDigita;
	}

	public GdDocumento(GdDocumentoId id, GdMaestroDoc gdMaestroDoc,
			GdTipoDocum gdTipoDocum, String cunidad, String ddocumento,
			String mestado, Date fcreacionDoc, Date fhModificacion,
			long nfolio, Date fhObsoletoDoc, String cusuarioElabora,
			String cusuarioRevisa, String cusuarioAutoriza, boolean bactivo,
			Blob xcontenDoc, Date frevisionDoc, Date fautorizacionDoc,
			String cusuarioDigita, String sobjetivo,
			Set<GdHDocCambios> gdHDocCambioses) {
		this.id = id;
		this.gdMaestroDoc = gdMaestroDoc;
		this.gdTipoDocum = gdTipoDocum;
		this.cunidad = cunidad;
		this.ddocumento = ddocumento;
		this.mestado = mestado;
		this.fcreacionDoc = fcreacionDoc;
		this.fhModificacion = fhModificacion;
		this.nfolio = nfolio;
		this.fhObsoletoDoc = fhObsoletoDoc;
		this.cusuarioElabora = cusuarioElabora;
		this.cusuarioRevisa = cusuarioRevisa;
		this.cusuarioAutoriza = cusuarioAutoriza;
		this.bactivo = bactivo;
		this.xcontenDoc = xcontenDoc;
		this.frevisionDoc = frevisionDoc;
		this.fautorizacionDoc = fautorizacionDoc;
		this.cusuarioDigita = cusuarioDigita;
		this.sobjetivo = sobjetivo;
		this.gdHDocCambioses = gdHDocCambioses;
	}

	@EmbeddedId
	@AttributeOverrides( {
			@AttributeOverride(name = "NDocumento", column = @Column(name = "N_DOCUMENTO", nullable = false, length = 9)),
			@AttributeOverride(name = "NEdicion", column = @Column(name = "N_EDICION", nullable = false, length = 2)) })
	public GdDocumentoId getId() {
		return this.id;
	}

	public void setId(GdDocumentoId id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "N_DOCUMENTO", nullable = true, insertable = false, updatable = false)
	public GdMaestroDoc getGdMaestroDoc() {
		return this.gdMaestroDoc;
	}

	public void setGdMaestroDoc(GdMaestroDoc gdMaestroDoc) {
		this.gdMaestroDoc = gdMaestroDoc;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "C_TIPO_DOC", nullable = false)
	public GdTipoDocum getGdTipoDocum() {
		return this.gdTipoDocum;
	}

	public void setGdTipoDocum(GdTipoDocum gdTipoDocum) {
		this.gdTipoDocum = gdTipoDocum;
	}

	@Column(name = "C_UNIDAD", length = 5)
	public String getCunidad() {
		return this.cunidad;
	}

	public void setCunidad(String cunidad) {
		this.cunidad = cunidad;
	}

	@Column(name = "D_DOCUMENTO", nullable = false, length = 90)
	public String getDdocumento() {
		return this.ddocumento;
	}

	public void setDdocumento(String ddocumento) {
		this.ddocumento = ddocumento;
	}

	@Column(name = "M_ESTADO", nullable = false, length = 1)
	public String getMestado() {
		return this.mestado;
	}

	public void setMestado(String mestado) {
		this.mestado = mestado;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "F_CREACION_DOC", nullable = false, length = 7)
	public Date getFcreacionDoc() {
		return this.fcreacionDoc;
	}

	public void setFcreacionDoc(Date fcreacionDoc) {
		this.fcreacionDoc = fcreacionDoc;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "FH_MODIFICACION", length = 7)
	public Date getFhModificacion() {
		return this.fhModificacion;
	}

	public void setFhModificacion(Date fhModificacion) {
		this.fhModificacion = fhModificacion;
	}

	@Column(name = "N_FOLIO", nullable = false, precision = 10, scale = 0)
	public long getNfolio() {
		return this.nfolio;
	}

	public void setNfolio(long nfolio) {
		this.nfolio = nfolio;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "FH_OBSOLETO_DOC", length = 7)
	public Date getFhObsoletoDoc() {
		return this.fhObsoletoDoc;
	}

	public void setFhObsoletoDoc(Date fhObsoletoDoc) {
		this.fhObsoletoDoc = fhObsoletoDoc;
	}

	@Column(name = "C_USUARIO_ELABORA", length = 30)
	public String getCusuarioElabora() {
		return this.cusuarioElabora;
	}

	public void setCusuarioElabora(String cusuarioElabora) {
		this.cusuarioElabora = cusuarioElabora;
	}

	@Column(name = "C_USUARIO_REVISA", length = 30)
	public String getCusuarioRevisa() {
		return this.cusuarioRevisa;
	}

	public void setCusuarioRevisa(String cusuarioRevisa) {
		this.cusuarioRevisa = cusuarioRevisa;
	}

	@Column(name = "C_USUARIO_AUTORIZA", length = 30)
	public String getCusuarioAutoriza() {
		return this.cusuarioAutoriza;
	}

	public void setCusuarioAutoriza(String cusuarioAutoriza) {
		this.cusuarioAutoriza = cusuarioAutoriza;
	}

	@Column(name = "B_ACTIVO", nullable = false, precision = 1, scale = 0)
	public boolean isBactivo() {
		return this.bactivo;
	}

	public void setBactivo(boolean bactivo) {
		this.bactivo = bactivo;
	}

	@Column(name = "X_CONTEN_DOC")
	public Blob getXcontenDoc() {
		return this.xcontenDoc;
	}

	public void setXcontenDoc(Blob xcontenDoc) {
		this.xcontenDoc = xcontenDoc;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "F_REVISION_DOC", length = 7)
	public Date getFrevisionDoc() {
		return this.frevisionDoc;
	}

	public void setFrevisionDoc(Date frevisionDoc) {
		this.frevisionDoc = frevisionDoc;
	}

	@Temporal(TemporalType.DATE)
	@Column(name = "F_AUTORIZACION_DOC", length = 7)
	public Date getFautorizacionDoc() {
		return this.fautorizacionDoc;
	}

	public void setFautorizacionDoc(Date fautorizacionDoc) {
		this.fautorizacionDoc = fautorizacionDoc;
	}

	@Column(name = "C_USUARIO_DIGITA", nullable = false, length = 30)
	public String getCusuarioDigita() {
		return this.cusuarioDigita;
	}

	public void setCusuarioDigita(String cusuarioDigita) {
		this.cusuarioDigita = cusuarioDigita;
	}

	@Column(name = "S_OBJETIVO", length = 200)
	public String getSobjetivo() {
		return this.sobjetivo;
	}

	public void setSobjetivo(String sobjetivo) {
		this.sobjetivo = sobjetivo;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "gdDocumento")
	public Set<GdHDocCambios> getGdHDocCambioses() {
		return this.gdHDocCambioses;
	}

	public void setGdHDocCambioses(Set<GdHDocCambios> gdHDocCambioses) {
		this.gdHDocCambioses = gdHDocCambioses;
	}

}
